1. Technical Field
The present invention is directed to memory systems. More specifically, the present invention is directed to a system and method of adaptively reconfiguring buffers.
2. Description of Related Art
Due to continued advances in very large scale integration (VLSI) technology, processor performance has steadily been increasing from one generation to the next. Input/output (I/O) performance of secondary storage devices (e.g., disk drives, optical disk drives etc.) however, has not kept pace. Particularly, I/O performance of disks is constrained by the amount of time needed to locate and retrieve data, otherwise known as seek and rotational times. On the average, seek and rotational times for random accesses to disks are orders of magnitude longer than the time required to transfer data between a processor and main memory. Thus, a throughput imbalance exists between processors and disks. To reduce this imbalance, buffers are used.
Generally, most computer systems allocate memory space for a number of buffers configurable according to memory size and system performance constraints during system initialization. Under most operational conditions, the buffers are able to accommodate the data being placed therein. In some instances, however, the buffers may not be able to handle the size of the data. Particularly, when the size of the data exceeds the size of the buffer into which it is being placed, a buffer overflow may ensue. When that occurs, the excess data may overflow into an adjacent buffer. If data was stored in the adjacent buffer, the data may become corrupted.
Some systems allow sophisticated users to manually reconfigure buffers. Most users, however, are not sophisticated enough to be able to do so. In addition, even sophisticated users may not do so if they do not know or cannot anticipate the size of the data that is to be placed in the buffers.
Thus, what is needed is a system and method of adaptively reconfiguring buffers.